# 确保 opencv-contrib-python 已经安装
# pip install opencv-contrib-python

import cv2

img = cv2.imread("./img/leijun.jpg")
gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# 加载Haar的算法库
# CascadeClassifier 级联分类器，通过加载特征文件完成识别
classifier = cv2.CascadeClassifier("./haarcascades/haarcascade_frontalface_alt2.xml")
# 检测到多张人脸
# 参数1：原始的图像
# 参数2：图像放大的倍率
# 参数3：能够连续检测的相邻图像个数
# 参数4：是否开启边缘信息过滤（默认不开启）
# 参数5：能检测到的图像的最小范围
# 参数6：能检测到的图像的最大范围
faces = classifier.detectMultiScale(gray_img,
                            1.01,
                            5,
                            0,
                            (100,100),
                            (300,300))

# 遍历faces
for face in faces:
    (x,y,w,h) = face
    cv2.rectangle(img,(x,y),(x+w,y+h),color=(0,0,255),thickness=2)

# 显示图片
cv2.imshow("detect face",img)
cv2.waitKey(0)
cv2.destroyAllWindows()